#include "stdafx.h"
#include "ckEnumGroup.h"
#include "ckGroup.h"

namespace ck
{
	namespace data
	{
		EnumGroup::EnumGroup()
		{
			m_iter = m_groups.begin();
		}

		EnumGroup::~EnumGroup()
		{
			Cleanup();
		}

		void EnumGroup::Add(Group* pCase)
		{
			if (pCase)
			{
				m_groups.push_back(pCase);
			}
		}

		void EnumGroup::Cleanup()
		{
			std::vector<Group*>::iterator iter;
			for (iter = m_groups.begin(); iter != m_groups.end(); iter++)
			{
				(*iter)->Release();
			}
			m_groups.clear();
		}

		void EnumGroup::Reset()
		{
			m_iter = m_groups.begin();
		}

		Group* EnumGroup::Next()
		{
			if (m_iter == m_groups.end())
			{
				return NULL;
			}
			return *(m_iter++);
		}

	}
}
